package com.petshop.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.petshop.dto.CartItemRequest;
import com.petshop.dto.CartItemUpdateDTO;
import com.petshop.pojo.CartItems;
import com.petshop.utils.Result;

import java.util.ArrayList;
import java.util.List;

/**
 * @author 20289
 * @description 针对表【cart_items(存储用户购物车中的商品信息)】的数据库操作Service
 * @createDate 2025-03-09 22:31:47
 */
public interface CartItemsService extends IService<CartItems> {

    /**
     * 获取购物车的所有商品
     *
     * @return
     */
    Result getAllItem(String token);

    /**
     * 添加一个商品到购物车
     *
     * @param cartItemRequest
     * @param token
     * @return
     */
    Result addItem(CartItemRequest cartItemRequest, String token);

    /**
     * 根据商品id从购物车删除一个商品
     *
     * @param cartIds
     * @return
     */
    Result outItem(List<Integer> cartIds);

    /**
     * 修改购物车商品数量
     *
     * @param cartItemUpdateDTO
     * @return
     */
    Result updateQuantity(CartItemUpdateDTO cartItemUpdateDTO);


    /**
     * 根据id从购物车删除1个商品
     *
     * @param cartId
     * @return
     */
    Result outOneItem(Integer cartId);

    List<CartItems> selectCartItems(ArrayList<Integer> cartIds);
}
